<template>
    <div class="btn-body">
        <div v-show="type==='detail'">{{msg}}</div>
        <div class="btn1">
            <div class="btn" @click="toPay" v-if="good.status==='0'">去付款</div>
            <div class="btn2" @click="cancel" v-if="good.status==='0'">取消订单</div>
            <!--<div class="btn2" @click="remind" v-if="good.status==='1'">-->
            <!--提醒发货-->
            <!--</div>-->
            <!--<div class="btn2" @click="logistics" v-if="(good.status==='2'||good.status==='3')&& type!=='detail'">-->
            <!--查看物流-->
            <!--</div>-->
            <div class="btn" @click="sure" v-if="good.status==='2'">确认收货</div>
            <div class="btn2" @click="couponCode" v-if="good.status==='5'">查看劵码</div>
        </div>
        <confirm ref="confirm1" text="确定取消订单吗?" confirmText="确定" @confirm="confirmCancel" />
        <confirm ref="confirm2" text="确定收货吗?" confirmText="确定" @confirm="confirmReceive" />
    </div>
</template>

<script>
    import API from "../../request/api";
    import confirm from "../../components/common/confirm";
    import { Toast } from "vant";

    export default {
        name: "orderBtn",
        data() {
            return {
                oid: ""
            };
        },
        components: { confirm },
        props: {
            good: {
                type: Object,
                required: true
            },
            type: {
                type: String,
                required: true
            },
            msg: {
                type: String,
                default: "购买的商品"
            }
        },
        computed: {},
        watch: {
            // 监听具体数据变化，并做相应的处理
        },
        methods: {
            toPay() {
                //childOrder-->子订单去付款
                let data = {
                    getWayData: {
                        target_id: this.oid,
                        target_type: "childOrder"
                    },
                    total: this.money,
                    type: this.good.type
                };
                this.$store.commit("dataCreatePay", data);
                this.$router.replace("pay-choose");
            },

            cancel() {
                this.$refs.confirm1.show();
            },
            confirmCancel() {
                this.request
                    .post(API.orderCancel, {
                        oid: this.oid
                    })
                    .then(
                        res => {
                            // this.$toast({
                            //     message: '取消成功',
                            //     duration: 1000
                            // });
                            this.$emit("finishCancel", this.oid);
                            // setTimeout(()=>{
                            //     location.reload()
                            // }, 1000)
                        },
                        () => {}
                    );
            },
            logistics() {
                //    物流详情
                this.$router.push({
                    name: "logistics",
                    query: {
                        ID: this.oid
                    }
                });
            },
            sure() {
                this.$refs.confirm2.show();
            },
            confirmReceive() {
                this.request.post(API.orderConfirm, { oid: this.oid }).then(
                    res => {
                        Toast("已确认收货！");
                        location.reload();
                    },
                    () => {}
                );
            },
            couponCode() {
                this.$router.push({
                    name: "couponCode",
                    query: {
                        ID: this.oid
                    }
                });
            }
        },
        beforeCreate() {
            // 可以在这加个loading事件，在加载实例时触发
            // 这个阶段实例的data、methods是读不到的
        },
        created() {
            setTimeout(() => {
                if (this.good.id) {
                    this.oid = this.good.id;
                } else {
                    this.oid = this.good.oid.order_id;
                }
            }, 500);
        },
        beforeMount() {
            // 相关的 render 函数首次被调用。
        },
        mounted() {
            // 挂载元素，获取到DOM节点
            // el选项的DOM节点 被新创建的 vm的el 替换，并挂载到实例上去之后调用此生命周期函数。此时实例的数据在DOM节点上进行渲染
        },
        beforeUpdate() {
            // 数据更新时调用，但不进行DOM重新渲染，在数据更新时DOM没渲染前可以在这个生命函数里进行状态处理
        },
        updated() {
            //  如果对数据统一处理，在这里写上相应函数
            // 这个状态下数据更新并且DOM重新渲染，当这个生命周期函数被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。当实例每次进行数据更新时updated都会执行
        },
        beforeDestroy() {
            // 可以做一个确认停止事件的确认框
        },
        destroyed() {
            // Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，所有的事件监听器会被移除，所有的子实例也会被销毁
        }
    };
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
    @import '~assets/main.styl';

    .btn-body {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 cellPadding;
        min-height: vw(40);

        .btn1 {
            display: flex;
            justify-content: flex-end;
            flex: 1;
            padding-bottom: vw(6);

            .btn2 {
                btn-gray();
            }

            .btn {
                btn-main();
            }

            div {
                margin-left: middleMargin;
            }
        }
    }
</style>
